'''
匿名函数：简化函数定义
格式:lambda 参数1，参数2...: 运算
'''

s = lambda a , b : a + b
result = s(2,3)
print(result)
print('------------')

#匿名函数作为参数
def func(x,y,func):
    print(x,y)
    print(func)
    s = func(x,y)
    print(s)

#调用func
func(2,3,lambda x , y : x + y)

print('-----------------')

#匿名函数和内置函数的结合
#max()函数
list1 = [{'a':1,'b':20},{'a':5,'b':6},{'a':2,'b':3}]
s = max(list1,key=lambda x:x['a'])
print(s)
#sorted()函数
s2 = sorted(list1,key=lambda x:x['a'])
print(s2)

#map()函数
#对列表中的奇数进行加1操作
list2 = [1,2,3,4,5]
s1 = map(lambda x:x if x%2==0 else x+1,list2)
print(list(s1))

print('-----------------')

#reduce() 对列表中的元素进行加减乘除运算的函数
from functools import reduce
tuple1 = (2,3,5,4,1)
result = reduce(lambda x,y:x+y,tuple1)
print(result)
tuple2 = (1,)
result1 = reduce(lambda x,y:x*y,tuple2,10)
print(result1)

print('----------------')

#filter()函数
list3 = [12,5,32,5,4,7]
result2 = filter(lambda x:x>10,list3)
print(list(result2))